ICECompoundNode

Object Hierarchy | 関連する C++クラス:ICECompoundNode

継承

SIObject

ProjectItem

ICENode

ICENodeContainer

ICECompoundNode

導入

v 7.0

カテゴリ

MoonDust

詳細

ICECompoundNode オブジェクトは、ICECompoundNodeICEDataProviderNodeなどのその他のICENodeオブジェクトを含むノードサブグラフを表します。ICECompoundNode は、入力ポートおよび出力ポートを持つ基本的なICENode のようなものです。注:ICETreeオブジェクトは、ICECompoundNodeサブグラフの一部にすることはできません。

メソッド

AddCustomOp AddScriptedOp AddScriptedOpFromFile AnimatedParameters2
BelongsToオペレータ EvaluateAt GetGroupInstanceCount GetICEAttributeFromName
GetPortCount GetPortFromIndex GetPortFromName IsA
IsAnimated2 IsClassOfオペレータ IsEqualToオペレータ IsKindOf
IsLockedオペレータ IsSelectedオペレータ LockOwners SetAsSelectedオペレータ
SetCapabilityFlagオペレータ SetLock TaggedParameters UnSetLock

プロパティ

Application BranchFlagオペレータ Capabilitiesオペレータ Categories
CompoundNodes DataModifierNodes DataProviderNodes EvaluationID
ExposedPorts Familiesオペレータ FullNameオペレータ Help
HierarchicalEvaluationID ICEAttributes InputPorts IsConnected
LockLevelオペレータ LockMastersオペレータ LockTypeオペレータ Major
Minor Model Nameオペレータ NestedObjects
Nodes ObjectID Origin OriginPath
OutputPorts Owners PPGLayoutオペレータ Parametersオペレータ
Parent Parent3DObject PortGroupCount RootNodeContainer
Selectedオペレータ Typeオペレータ    
       

Python の例

# Sample code to log the inner nodes for all the compound nodes of a graph
import win32com.client
from win32com.client import constants
xsi = Application
# Recursive function for traversing a node graph
def TraverseNodeGraph( in_node, level ):
        indent = level * '.'
        # Log the visited compound node name
        if in_node.IsClassOf( constants.siICECompoundNodeID ):
                xsi.LogMessage( indent + in_node.Name )
        nodeCount = 0
        nodes = ()
        if in_node.IsClassOf( constants.siICENodeContainerID ): 
                # The input node is a ICENodeContainer, let's get its inner compound nodes
                nodes = in_node.CompoundNodes
                nodeCount = nodes.Count
        # Recursively traverse the graph
        for i in range(nodeCount):
                TraverseNodeGraph( nodes[i], level+2 )
# Create a sample twist deformer graph first
xsi.CreatePrim( "Cube", "MeshSurface" )
xsi.SetValue( "cube.polymsh.geom.subdivu", 15 )
xsi.SetValue( "cube.polymsh.geom.subdivv", 14 )
xsi.ApplyOp( "ICETree", "cube", None, None, None, 0 )
xsi.AddICENode( "GetDataNode", "cube.polymsh.ICETree" )
xsi.SetValue( "cube.polymsh.ICETree.SceneReferenceNode.Reference", "cube.polymsh.PointPosition" )
xsi.AddICENode( "RotateVectorNode", "cube.polymsh.ICETree" )
xsi.AddICENode( "3DVectorToScalarNode", "cube.polymsh.ICETree" )
xsi.AddICENode( "SetData", "cube.polymsh.ICETree" )
xsi.SetValue( "cube.polymsh.ICETree.SetData.PredefinedAttributeName", "PointPosition" )
xsi.AddAttributeToSetDataICENode( "cube.polymsh.ICETree.SetData", "PointPosition", constants.siComponentDataTypeVector3, constants.siComponentDataContextComponent0D, constants.siComponentDataStructureSingle )
xsi.ConnectICENodes( "cube.polymsh.ICETree.port1", "cube.polymsh.ICETree.SetData.set" )
xsi.ConnectICENodes( "cube.polymsh.ICETree.RotateVectorNode.vector", "cube.polymsh.ICETree.SceneReferenceNode.value" )
xsi.ConnectICENodes( "cube.polymsh.ICETree.SetData.pointposition", "cube.polymsh.ICETree.RotateVectorNode.result" )
xsi.ConnectICENodes( "cube.polymsh.ICETree.3DVectorToScalarNode.vector", "cube.polymsh.ICETree.SceneReferenceNode.value" )
xsi.AddICENode( "MultiplyNode", "cube.polymsh.ICETree" )
xsi.ConnectICENodes( "cube.polymsh.ICETree.MultiplyNode.value1", "cube.polymsh.ICETree.3DVectorToScalarNode.y" )
xsi.AddICENode( "ScalarToRotationNode", "cube.polymsh.ICETree" )
xsi.ConnectICENodes( "cube.polymsh.ICETree.ScalarToRotationNode.angle", "cube.polymsh.ICETree.MultiplyNode.result" )
xsi.ConnectICENodes( "cube.polymsh.ICETree.RotateVectorNode.rotation", "cube.polymsh.ICETree.ScalarToRotationNode.rotation" )
xsi.SetValue( "cube.polymsh.ICETree.ScalarToRotationNode.y", 1 )
xsi.SetValue( "cube.polymsh.ICETree.ScalarToRotationNode.x", 0 )
xsi.SetValue( "cube.polymsh.ICETree.MultiplyNode.value2", 20 )
xsi.CreateICECompoundNode("cube.polymsh.ICETree.3DVectorToScalarNode,cube.polymsh.ICETree.MultiplyNode,cube.polymsh.ICETree.ScalarToRotationNode", "Compound1")
xsi.CreateICECompoundNode("cube.polymsh.ICETree.Compound1.ScalarToRotationNode,cube.polymsh.ICETree.Compound1.MultiplyNode", "Compound2")
xsi.CreateICECompoundNode("cube.polymsh.ICETree.Compound1", "CompoundTop")
# Get the ICETree off the cube primitive and start iterating the graph
cube = xsi.Selection(0)
cubeICETree = cube.ActivePrimitive.ICETrees[0]
level = 0
TraverseNodeGraph( cubeICETree, level )

関連項目

CreateICECompoundNode